import axios from "axios";
// 2.通过node提供的环境常量动态管理服务端请求域名地址
// 动态process.env.NODE_ENV  development  production
let baseURL = "";
if (process.env.NODE_ENV == "development") {
  baseURL = "http://localhost:3000"; //本地服务（测试服务器==>本地 测试服务器==>远程） //baseURL = "https://api.aslegou.top" //本地服务（测试服务器==>本地 测试服务器==>远程）
} else {
  baseURL = "https://api.aslegou.top"; //生产服务器
}

// 3.创建实例
const http = axios.create({
  baseURL,
});

// 4.设置请求拦截
http.interceptors.request.use(
  (config) => {
    // 再此可以处理请求数据 header头 token
    let token = localStorage.getItem("token") || "";
    if (token != "") {
      // config.headers.Authorization = JSON.parse(token).token;
    }
    return config;
  },
  () => {}
);

// 5.设置响应拦截
http.interceptors.response.use(
  (res) => {
    return res;
  },
  () => {}
);

// -------------------------基于项目方式封装：get post-----------------------------------------
/**
 * 6.功能：基于get方法查询数据
 * 参数：{
 *      url:"请求数据路径",
 *      params:请求参数
 * }
 * 返回结果：
 * */
export const getData = (url, params = {}) => {
  return http.get(url, {
    params,
  });
};

/**
 * 7.功能：基于post方法查询数据
 * 参数：{
 *      url:"请求数据路径",
 *      params:请求参数
 * }
 * 返回结果：
 * */
export const postData = (url, params = {}) => {
  console.log(params); // 表单提交数据类型：字段类型数据 文件数据（img file video ） // 1.有文件上传(二进制文件流) // new FormData() // 2.无文件上传
  return http.post(url, params);
};
